/**
 * 会议室管理模块配置文件
 * 该文件定义了会议室管理模块的相关配置，包括模块名称、API 路径、会议室接口定义、表格列配置、检索配置和添加配置。
 * @module meetingRoomsConfig
 */
export const moduleName = '出主信息'
export const moduleApi = '/api/hotelCheckin'

// 模块字段
// StayInfo:
// "id": 0,
//         "activityId": "string",
//         "userId": "string",
//         "hotelManagementId": "string",
//         "houseType": "string",
//         "houseNumber": "string",
//         "dwellStartDate": "string",
//         "dwellEndDate": "string",
//         "remark": "string",
//         "payStatus": "string"
export interface StayInfo {
  id: number // 唯一标识符
  activityId: string // 活动ID
  userId: string // 用户ID
  hotelManagementId: string // 酒店管理ID
  houseType: string // 房屋类型
  houseNumber: string // 房屋编号
  dwellStartDate: string // 入住开始日期
  dwellEndDate: string // 入住结束日期
  remark: string // 备注
  payStatus: string // 支付状态
}
const mockData: StayInfo[] = []

/**
 * 表格列配置
 * @param {string} label - 列的标题
 * @param {string} prop - 对应的数据字段
 * @param {string} component - 使用的组件类型 (input, select, date, imgUpload, dateRange, timeRange)
 * @param {string} minWidth - 最小宽度（可选）
 */
const tableColumns = ref<any>([
  { label: 'ID', prop: 'id', minWidth: '80px' },
  { label: '活动ID', prop: 'activityId', minWidth: '150px' },
  { label: '用户ID', prop: 'userId', minWidth: '150px' },
  { label: '酒店管理ID', prop: 'hotelManagementId', minWidth: '150px' },
  { label: '房屋类型', prop: 'houseType', minWidth: '120px' },
  { label: '房屋编号', prop: 'houseNumber', minWidth: '120px' },
  { label: '入住开始日期', prop: 'dwellStartDate', component: 'date', minWidth: '150px' },
  { label: '入住结束日期', prop: 'dwellEndDate', component: 'date', minWidth: '150px' },
  { label: '备注', prop: 'remark', minWidth: '200px' },
  { label: '支付状态', prop: 'payStatus', minWidth: '120px' },
])
/**
 * 获取检索配置参数
 * 返回的对象包含以下属性:
 * @param {string} label - 检索项的标题
 * @param {string} prop - 对应的数据字段
 * @param {string} component - 使用的组件类型 (input, select, date, imgUpload, dateRange, timeRange)
 * @param {string} placeholder - 输入框的占位符（可选）
 */
const searchParams = () => [
  { label: '活动ID', prop: 'activityId', component: 'input', placeholder: '请输入活动ID' },
  { label: '用户ID', prop: 'userId', component: 'input', placeholder: '请输入用户ID' },
  { label: '酒店管理ID', prop: 'hotelManagementId', component: 'input', placeholder: '请输入酒店管理ID' },
  { label: '房屋类型', prop: 'houseType', component: 'input', placeholder: '请输入房屋类型' },
  { label: '房屋编号', prop: 'houseNumber', component: 'input', placeholder: '请输入房屋编号' },
  { label: '入住开始日期', prop: 'dwellStartDate', component: 'dateRange', placeholder: '选择入住开始日期' },
  { label: '入住结束日期', prop: 'dwellEndDate', component: 'dateRange', placeholder: '选择入住结束日期' },
  { label: '支付状态', prop: 'payStatus', component: 'select', placeholder: '选择支付状态' },
]
/**
 * 获取添加参数
 * @param {string} label - 添加项的标题
 * @param {string} prop - 对应的数据字段
 * @param {string} required - 是否必填
 * @param {object} rule - 校验规则（可选），若不为 null，则表示该字段需要进行校验
 * @param {function} validator - 校验函数，若校验规则采用自动形式，需要通过validator传入校验函数
 * @param {number} colSpan - 列的跨度（可选）
 * @param {string} component - 使用的组件类型 ('input' | 'input-number' | 'select' | 'switch' | 'textarea' | 'date-picker' | 'time-picker' | 'time-picker' | 'img-upload')
 * @param {string} placeholder - 输入框的占位符（可选）
 */
const addParams = ref<any>([
  { label: 'ID', prop: 'id', component: 'input-number', placeholder: '请输入ID', required: true },
  { label: '活动ID', prop: 'activityId', component: 'input', placeholder: '请输入活动ID', required: true },
  { label: '用户ID', prop: 'userId', component: 'input', placeholder: '请输入用户ID', required: true },
  { label: '酒店管理ID', prop: 'hotelManagementId', component: 'input', placeholder: '请输入酒店管理ID', required: true },
  { label: '房屋类型', prop: 'houseType', component: 'input', placeholder: '请输入房屋类型', required: true },
  { label: '房屋编号', prop: 'houseNumber', component: 'input', placeholder: '请输入房屋编号', required: true },
  { label: '入住开始日期', prop: 'dwellStartDate', component: 'date-picker', placeholder: '选择入住开始日期', required: true },
  { label: '入住结束日期', prop: 'dwellEndDate', component: 'date-picker', placeholder: '选择入住结束日期', required: true },
  { label: '备注', prop: 'remark', component: 'textarea', placeholder: '请输入备注' },
  { label: '支付状态', prop: 'payStatus', component: 'select', placeholder: '选择支付状态', required: true },
])

export { addParams, mockData, searchParams, tableColumns }
